In relatively recent years, graphics packages have existed for rendering printed pages to printers, display screens, and/or other locations (eg. files). A number of these graphics packages typically utilise a high-level page description language for assisting in the layout of the printed pages. These graphics packages typically comprise a rendering system, which converts the high level page description of the page layout into pixels data that can be used as raster data to be printed and/or displayed.
One such rendering system comprises a full-page frame store to hold a pixel-based image of the page or screen. The full-page frame store is a buffer that has room for every pixel that needs to be sent to the printer for a whole page. In these systems, every object that is received in the high-level page description can be rendered immediately. The main problem with this system is the memory that is required for the frame store is very large, especially when each pixel is required to be continuous-tone colour, and may have an associated transparency value.
There exist rendering systems, which perform more efficiently in both speed and memory usage when applied to the render list as a whole rather than to objects sequentially in z-order. Such systems are highly advantageous when the storage required for the render-list is within available resources, but break down if more resources are required. For instance, the size of an object render-list is unbounded, whereas the size of a frame store, although large, is limited and is strictly dependent on the resolution and size of the printed page. When such systems are used they either fail when presented with a render-list that exceeds available resources, or degrade to an object-sequential immediate rendering method using a frame store.